The present invention relates in general to telecommunication networks, and, more particularly, to an intelligent network architecture for voice networks.
A major advance in telecommunication networks of the past decade has been the introduction of the intelligent network (IN) and the advanced intelligent network (AIN). Previous telecommunications networks consisted of switching systems interconnected by transmission facilities. The AIN enhances the capabilities of such systems by providing service control points (SCPs), intelligent peripherals (IPs) and service nodes (SNs). The SCPs, IPs, and SNs are configured to communicate or exchange information over the AIN via switching service points (SSPs). An SSP performs switching functions to route a call. An SCP includes a database that contains customer records defining how each customer""s calls are to be handled. The IPs and SNs provide customized features and specialized call handling, including querying customers for additional information for controlling calls. For example, an IP may be configured to play an audio announcement and collect digits entered in response to the audio announcement. The IPs and the SNs therefore operate to increase the functionality of the AIN.
The IPs and the SNs are each connected to an associated switching system over both audio and data facilities while the SCPs are connected to the switching system over a data signaling network. The data signaling network is typically a common channel signaling network using the signaling system 7 (SS7) protocol promulgated by the Consultative Committee for International Telegraph and Telephone (CCITT) or by the American National Standards Institute (ANSI).
The intelligent and advanced intelligent networks are used, for example, to route 800/888 calls. Such calls lack a dial address that directly allows the telecommunications network to determine a terminating designation. Instead, upon receipt of an 800/888 number, an SSP queries an SCP to obtain information as to where to route the call. For a simple 800/888 call, the SCP returns a conventional plain old telephone service (POTS) number. A POTS number is a number that directly identifies the designation and is used by the SSP to route the call in a conventional way.
For some 800/888 calls, the 800/888 number itself is not sufficient to establish a call as the service may be set-up to route the call to a number of different designations depending on the customer""s purpose. For example, the same 800/888 number may be used to contact a company""s customer service department, ordering department, or shipping department, all of which may or may not be in the same building or geographic location. In these and other situations, the SCP needs additional information before a POTS number can be generated. The SCP sets up a transaction for the call and requests additional information through a series of messages exchanged between the SCP and the SSP. The messages from the SCP instruct the SSP to request and collect additional information from the customer. The collected information is then sent to the SCP to build state information concerning the call. Each transaction typically requires a number of operations with each operation resulting in the exchange of messages between the SSP and the SCP. The SCP executes a single operation at a time such that the SCP may request additional information a number of times before the POTS number can be determined and the transaction completed.
There are a number of disadvantages with such a system. If the SCP fails while a transaction is in progress, the entire call is lost because the state information of the call is built and stored in the SCP. Further, the duration of each transaction is relatively long as the SCP only performs one operation at a time for each transaction. Additionally, the SCP must wait while the SSP gathers the additional information such that latency in the SCP is improved.
Accordingly, there is a need for telephone networking systems where much of the functionality of the SCP is transferred closer to the edge of the network so as to increase the reliability and the speed of the network. Preferably, such a system would be relatively easy to manage and maintain and would be less complex than prior art networking systems.
The present invention meets this need by providing a telephone networking system in which the equivalent of the SCP customer record is retrieved from a database and transmitted across the network to be executed by an edge device having the capability to store information and perform logical operations. The equivalent SCP customer record is written in the form of an executable program which is executed by the edge device. For the 800/888 example, the executable program instructs the edge device to request and gather additional information. The additional information is then used by the executable program to generate the POTS number which is transmitted to the SSP to complete the call.
According to a first aspect of the present invention, a telephone networking system comprises a switching system, an input device, and a service logic database comprising a plurality of executable programs. The input device is configured to transmit input data corresponding to at least the digits of a dialed number to the switching system. The switching system is programmed to access the service logic database to retrieve one of the plurality of executable programs in response to the input data. The executable program is then transmitted to a network edge device for execution to complete routing of a call.
Preferably, each of the plurality of executable programs comprises an applet. The executable programs from the service logic database may be configured to request at least one set of additional input data from the input device. The executable programs may also be configured to generate routing data in response to the set of additional input data. The executable programs are preferably configured to cause the routing data to be transmitted to the switching system for routing of the call. The executable programs may be configured to request a plurality of sets of additional input data from the input device. The executable programs are then configured to generate routing data in response to the plurality of sets of additional input data. The executable programs may also be configured to cause the network edge device to interface with the switching system only after receiving the plurality of sets of additional input data.
The networking system may further comprise a service control point with the executable programs being configured to request data from the service control point in response to the set of additional input data. The executable programs may be configured to generate routing data in response to the data from the service control point and the set of additional input data. Preferably, the service control point is configured to generate routing data in response to the data from the service control point and the set of additional input data.
The networking system may further comprise a plurality of substantially identical service logic databases. Preferably, the input device is microprocessor controlled customer premises equipment, such as a microprocessor controlled telephone. The network edge device is preferably configured to determine whether the input device is microprocessor controlled customer premises equipment or non-microprocessor controlled customer premises equipment. The network edge device is selected from the group consisting of the switching system, the input device, an intelligent peripheral and a service node. The switching system preferably comprises a service switching point.
According to another aspect of the present invention, a telephone networking system comprises a switching system, an input device transmitting input data corresponding to at least the digits of a dialed number to the switching system, a service logic database comprising a first plurality of executable programs, a service control point comprising a second plurality of executable programs substantially functionally equivalent to the first plurality of executable programs, and at least one of an intelligent peripheral and a service node with at least one of the switching system, the intelligent peripheral and the service node being configured to determine whether the input device is microprocessor controlled customer premises equipment or non-microprocessor controlled customer premises equipment. The switching system is programmed to access the service logic database to retrieve one of the first plurality of executable programs in response to the input data if the input device is microprocessor controlled customer premises equipment with the executable program of the first plurality of executable programs being transmitted to one of the switching system, the intelligent peripheral, the service node, and the input device for execution to complete routing of a call.
The microprocessor controlled input device preferably comprises a display device such that the executable program is configured to cause the input device to display a request for at least one set of additional input data on the display device. The switching system may be programmed to access the service logic database to retrieve one of the first plurality of executable programs if said input device is non-microprocessor controlled customer premises equipment with the selected executable program being transmitted to one of the switching system, the intelligent peripheral and the service node for execution to complete routing of a call. The selected executable program is preferably configured to cause one of the switching system, the intelligent peripheral and the service node to play an audio request for at least one set of additional input data from the input device. The switching system may also be programmed to access the service control point to request execution of one of the second plurality of executable programs by the service control point in response to the input data if the input device is non-microprocessor controlled customer premises equipment to complete routing of the call.
Preferably, each of the first plurality of executable programs comprises an applet. The executable programs from the first plurality of executable programs may be configured to request at least one set of additional input data from the input device. The executable programs from the first plurality of executable programs are preferably configured to generate routing data in response to the set of additional input data. The executable programs from the first plurality of executable programs may be configured to cause the routing data to be transmitted to the switching system for routing of the call. The executable programs from the first plurality of executable programs may also be configured to request data from the service control point in response to the set of additional input data. The executable programs from the first plurality of executable programs may be configured to generate routing data in response to the data from the service control point and the set of additional input data. The switching system preferably comprises a service switching point.
According to yet another aspect of the present invention, a method of establishing a telephone call in a telephone networking system in response to input data from an input device comprises accessing one of a plurality of executable programs from a service logic database based on the input data. The executable program is transmitted from the service logic database to a network edge device for execution. The executable program is executed by the network edge device to generate routing data in response to a set of additional data. The routing data is transmitted to a switching system to route the telephone call.
Preferably, each of the plurality of executable programs comprises an applet. The step of executing the executable program to generate routing data in response to the set of additional data may comprise the step of requesting the set of additional data. The step of executing the executable program may comprise the step of requesting a plurality of sets of additional data. The step of executing the executable program is preferably completed by the network edge device prior to the step of transmitting the routing data to a switching system to route the telephone call. The step of executing the one executable program may comprise the step of requesting data from a service control point in response to the set of additional input data. The step of executing the executable program may comprise the step of generating the routing data in response to the data from the service control point and the set of additional input data.
According to a further aspect of the present invention, a method of establishing a telephone call in a telephone networking system in response to input data from an input device comprises determining if the input device is microprocessor controlled customer premises equipment or non-microprocessor controlled customer premises equipment. If the input device is microprocessor controlled customer premises equipment, one of a first plurality of executable programs is accessed from a service logic database based on the input data. The executable program from the first plurality of executable programs is transmitted from the service logic database to a network edge device for execution. The executable program from the first plurality of executable programs is executed by the network edge device. At least one set of additional data is requested. Routing data is generated in response to the set of additional data. The routing data is transmitted to a switching system to route the telephone call.
The executable program from the first plurality of executable programs is preferably configured to cause the input device, if microprocessor controlled, to display a request for the set of additional of input data on a display device. If the input device is non-microprocessor controlled customer premises equipment one of the first plurality of executable programs is accessed from a service logic database based on the input data. The selected executable program from the service logic database is transmitted to a network edge device not including the input device for execution. The selected executable program is executed in the network edge device. At least one set of additional data is requested. Routing data is generated in response to the set of additional data. The routing data is transmitted to the switching system to route the telephone call. The selected executable program is preferably configured to cause the input device or network edge device to play an audio request for the set of additional data. If the input device is non-microprocessor controlled customer premises equipment, one of a second plurality of executable programs is accessed from a service control point based on the input data. The executable program from the second plurality of executable programs is executed by the service control point to determine routing data. The routing data is transmitted to the switching system to route the telephone call.
Accordingly, it is an object of the present invention to provide a telephone networking system where much of the functionality of the SCP is transferred closer to the edge of the network. It is another object of the present invention to provide a networking system that is faster and more reliable than prior art networking systems. It is a further object of the present invention to provide a networking system that is relatively easy to manage, relatively easy to maintain and is less complex than prior art networking systems. Other features and advantages of the invention will be apparent from the following description, the accompanying drawings and the appended claims.